package lumis.portal.presentation.perspective;

import java.util.Set;

import lumis.portal.presentation.core.HTMLFragmentComponent;
/**
 * The PortalMode interface used internally by the portal framework.
 * {@link IPortalMode} implementations must also implement this interface.
 * @version $Revision: 13093 $ $Date: 2011-05-28 18:40:18 -0300 (Sat, 28 May 2011) $
 * @since 6.0.0
 */
public interface IPortalModeSPI extends IPortalMode
{
	/**
	 * Returns the permission provider of the current mode.
	 * @return the permission provider of the current mode.
	 * @since 6.0.0
	 */
	public IPermissionProvider getPermissionProvider();
	
	/**
	 * Returns the set of attribute names for the current PortalMode.
	 * @return the set of attribute names for the current PortalMode.
	 * @since 6.0.0
	 */
	public Set<String> getAttributeNames();
	
	/**
	 * Returns the component render.
	 * @return the component render.
	 * @since 6.0.0
	 */
	public Class<? extends HTMLFragmentComponent> getRenderComponentClass();
}
